home *** CD-ROM | disk | FTP | other *** search
Wrap
on startMovie global gPanoMovieID, gNavMovieID, gPathName, gLastTimeRollover, gPanoFrame, gQTVRCallBackFactory set gPanoMovieID to EMPTY set gNavMovieID to EMPTY set gPathName to EMPTY set gLastTimeRollover to 0 set gPanoFrame to EMPTY set the visible of sprite 8 to 0 set the visible of sprite 9 to 0 openXLib("QuickTime VR XCMDs") RegisterComponent(the pathName & "QuickTime VR Components", EMPTY) set gQTVRCallBackFactory to CallBackTracer(mnew) setCallBack(#PanoMovie, gQTVRCallBackFactory) end on stopMovie global gQTVRCallBackFactory ClosePanoMovie() CloseNavMovie() closeXLib("QuickTime VR XCMDs") if objectp(gQTVRCallBackFactory) then gQTVRCallBackFactory(mdispose) end if end on OpenNavMovie pFilename, pSpriteNum, pShowOnOpen global gNavMovieID CloseNavMovie() set tnavRect to the left of sprite pSpriteNum & "," & the top of sprite pSpriteNum & "," & the right of sprite pSpriteNum & "," & the bottom of sprite pSpriteNum put tnavRect set gNavMovieID to NavMovie("openMovie", "Direct", pFilename, the left of sprite pSpriteNum & "," & the top of sprite pSpriteNum, "ShowPoster", "Invisible") if gNavMovieID contains "error" then put gNavMovieID set gNavMovieID to EMPTY beep() exit end if end on ShowNavMovie global gNavMovieID if gNavMovieID <> EMPTY then NavMovie("Direct", gNavMovieID, "update") end if end on ZoomNavMovie pStartZoomRect, pSkipFirstFrame, pClipRect global gNavMovieID if gNavMovieID <> EMPTY then set tCommand to "ZoomOutMovie" && QUOTE & pStartZoomRect & QUOTE if not voidp(pSkipFirstFrame) then set tCommand to tCommand & "," & pSkipFirstFrame end if if not voidp(pClipRect) then set tCommand to tCommand & "," & QUOTE & pClipRect & QUOTE end if NavMovie("Direct", gNavMovieID, tCommand) NavMovie("Direct", gNavMovieID, "idle") end if end on SetNavMovieView pHPan, pVPan global gNavMovieID if gNavMovieID <> EMPTY then NavMovie("Direct", gNavMovieID, "set", "hPanAngle", pHPan) NavMovie("Direct", gNavMovieID, "set", "vPanAngle", pVPan) end if end on CloseNavMovie global gNavMovieID if gNavMovieID <> EMPTY then NavMovie("Direct", gNavMovieID, "dispose") set gNavMovieID to EMPTY end if end on NavFrameScript pSpriteNum global gNavMovieID if (gNavMovieID <> EMPTY) and (RunningInForeground() = "true") then if rollOver(pSpriteNum) then NavMovie("Direct", gNavMovieID, "mouseOver") cursor(200) cursor(-1) else NavMovie("Direct", gNavMovieID, "idle") end if end if end on OpenPanoMovie pFilename, pSpriteNum, pShowOnOpen global gPanoMovieID, gPathName ClosePanoMovie() set tPanoRect to the left of sprite pSpriteNum & "," & the top of sprite pSpriteNum & "," & the right of sprite pSpriteNum & "," & the bottom of sprite pSpriteNum set gPanoMovieID to PanoMovie("openMovie", "Direct", pFilename, tPanoRect) if gPanoMovieID contains "error" then put gPanoMovieID set gPanoMovieID to EMPTY beep() exit end if set gPathName to ExtractPathName(pFilename) InitPanoCallbacks() end on InitPanoCallbacks global gPanoMovieID if gPanoMovieID <> EMPTY then PanoMovie("Direct", gPanoMovieID, "set", "mouseOverHandler", EMPTY) PanoMovie("Direct", gPanoMovieID, "set", "rolloverHotSpotHandler", "sampleRolloverHandler") PanoMovie("Direct", gPanoMovieID, "set", "mouseDownHandler", EMPTY) PanoMovie("Direct", gPanoMovieID, "set", "panZoomStartHandler", EMPTY) PanoMovie("Direct", gPanoMovieID, "set", "mouseStillDownHandler", EMPTY) PanoMovie("Direct", gPanoMovieID, "set", "nodeLeaveHandler", EMPTY) end if end on ShowPanoMovie pQuality global gPanoMovieID if gPanoMovieID <> EMPTY then if not voidp(pQuality) then PanoMovie("Direct", gPanoMovieID, "set", "quality", pQuality) end if PanoMovie("Direct", gPanoMovieID, "update") end if end on SetPanoNode pNodeID, pUpdate, pQuality global gPanoMovieID if gPanoMovieID <> EMPTY then PanoMovie("Direct", gPanoMovieID, "set", "nodeID", pNodeID) if not voidp(pQuality) then PanoMovie("Direct", gPanoMovieID, "set", "quality", pQuality) end if if pUpdate then PanoMovie("Direct", gPanoMovieID, "Update") end if end if end on SwingPanoMovie pHPan, pVPan, pZoom, pSwingSpeed, pSwingQuality, pFinalQuality global gPanoMovieID if gPanoMovieID <> EMPTY then PanoMovie("Direct", gPanoMovieID, "set", "zoomAngle", pZoom) PanoMovie("Direct", gPanoMovieID, "set", "vPanAngle", pVPan) PanoMovie("Direct", gPanoMovieID, "set", "hPanAngle", pHPan) PanoMovie("Direct", gPanoMovieID, "set", "quality", pSwingQuality) PanoMovie("Direct", gPanoMovieID, "set", "transitionMode", "swing") PanoMovie("Direct", gPanoMovieID, "set", "transitionSpeed", pSwingSpeed) PanoMovie("Direct", gPanoMovieID, "update") PanoMovie("Direct", gPanoMovieID, "set", "transitionMode", "normal") if pFinalQuality <> pSwingQuality then PanoMovie("Direct", gPanoMovieID, "set", "quality", pFinalQuality) PanoMovie("Direct", gPanoMovieID, "update") end if end if end on CollapsePanoMovie global gPanoMovieID if gPanoMovieID <> EMPTY then PanoMovie("Direct", gPanoMovieID, "CollapseToHotSpotRgn") end if end on SetPanoMovieView pHPan, pVPan, pZoom, pQuality global gPanoMovieID if gPanoMovieID <> EMPTY then PanoMovie("Direct", gPanoMovieID, "set", "zoomAngle", pZoom) PanoMovie("Direct", gPanoMovieID, "set", "vPanAngle", pVPan) PanoMovie("Direct", gPanoMovieID, "set", "hPanAngle", pHPan) if not voidp(pQuality) then PanoMovie("Direct", gPanoMovieID, "set", "quality", pQuality) end if PanoMovie("Direct", gPanoMovieID, "update") end if end on ClosePanoMovie global gPanoMovieID if gPanoMovieID <> EMPTY then PanoMovie("Direct", gPanoMovieID, "dispose") set gPanoMovieID to EMPTY end if end on PanoFrameScript pSpriteNum global gLastTimeRollover, gPanoMovieID, gLastPanoMovieData, gPathName, gNavMovieID, gPanoFrame if rollOver(pSpriteNum) then if (gPanoMovieID <> EMPTY) and (RunningInForeground() = "true") then PanoMovie("Direct", gPanoMovieID, "mouseOver") set tMouseOverResult to the result if tMouseOverResult <> 0 then set tAction to item 1 of tMouseOverResult if tAction = "jump" then put item 2 of tMouseOverResult into field "Current Node ID" else if tAction = "stil" then put item 2 of tMouseOverResult into field "Current Hot Spot ID" else if tAction = "navg" then set tHotSpotID to item 2 of tMouseOverResult put tHotSpotID into field "Current Hot Spot ID" set tStartZoom to PanoMovie("Direct", gPanoMovieID, "get", "navgZoomRect") set tViewAngles to PanoMovie("Direct", gPanoMovieID, "get", "navgViewAngles") set tFileName to PanoMovie("Direct", gPanoMovieID, "get", "hotSpotName") CollapsePanoMovie() OpenNavMovie(gPathName & ":" & tFileName, 2, 0) if gNavMovieID <> EMPTY then set gPanoFrame to marker(0) go("Object From Pano") SetNavMovieView(item 1 of tViewAngles, item 2 of tViewAngles) set tClipRect to the left of sprite 2 & "," & the top of sprite 2 & "," & the right of sprite 2 & "," & the bottom of sprite 2 ZoomNavMovie(tStartZoom, "true", tClipRect) else PanoMovie("Direct", gPanoMovieID, "update") end if else if tAction = "misc" then put item 2 of tMouseOverResult into field "Current Hot Spot ID" else if tAction = "undf" then put item 2 of tMouseOverResult into field "Current Hot Spot ID" else if tAction = "pan " then end if end if end if end if end if end if set gLastTimeRollover to 1 else if rollOver(pSpriteNum) then set gLastTimeRollover to 1 else cursor(200) cursor(-1) set gLastTimeRollover to 0 end if end if end if else if gLastTimeRollover then cursor(200) cursor(-1) set gLastTimeRollover to 0 if gPanoMovieID <> EMPTY then PanoMovie("Direct", gPanoMovieID, "idle") end if end if end if end on SampleMouseOverHandler global gPanoMovieID put "Mouse over panoramic movie" if gPanoMovieID <> EMPTY then end if end on SampleRolloverHandler pHotSpotID put pHotSpotID into field "Current Hot Spot ID" end on SampleMouseDownHandler global gPanoMovieID put "Mouse down during mouseOver call" if gPanoMovieID <> EMPTY then PanoMovie("Direct", gPanoMovieID, "PassMouseDown") end if end on SamplePanZoomStartHandler put "About to pan or zoom in panoramic movie" end on SampleMouseStillDownHandler global gPanoMovieID put "Enter mouse still down from panoramic movie" if gPanoMovieID <> EMPTY then end if put "Leave mouse still down from panoramic movie" end on SampleNodeLeaveHandler pToNode put "Jumping to node " & pToNode & " in panoramic movie" end on ExtractPathName pPathName set tDelimiter to ":" if pPathName contains tDelimiter then set tCharPos to length(pPathName) repeat while tCharPos >= 1 if char tCharPos of pPathName = tDelimiter then return char 1 to tCharPos - 1 of pPathName end if set tCharPos to tCharPos - 1 end repeat return EMPTY else return EMPTY end if end on SetupHandler pHandlerName global gPanoMovieID if the hilite of cast (pHandlerName && "Check") then PanoMovie("Direct", gPanoMovieID, "set", pHandlerName, "test" & pHandlerName) else PanoMovie("Direct", gPanoMovieID, "set", pHandlerName, EMPTY) end if end on TestMouseOverHandler global gPanoMovieID if gPanoMovieID <> EMPTY then put "In mouse over at: " & the ticks into field "MouseOverHandler Message" end if end on TestRolloverHotSpotHandler pHotSpotID global gPanoMovieID if gPanoMovieID <> EMPTY then put "Rolling over hot spot: " & pHotSpotID into field "RolloverHotSpotHandler Message" end if end on TestMouseDownHandler global gPanoMovieID if gPanoMovieID <> EMPTY then put "In mouse down at: " & the ticks into field "MouseDownHandler Message" PanoMovie("Direct", gPanoMovieID, "PassMouseDown") end if end on TestPanZoomStartHandler global gPanoMovieID if gPanoMovieID <> EMPTY then put "In pan zoom start at: " & the ticks into field "PanZoomStartHandler Message" end if end on TestMouseStillDownHandler global gPanoMovieID if gPanoMovieID <> EMPTY then put "In mouse still down at: " & the ticks into field "MouseStillDownHandler Message" put PanoMovie("Direct", gPanoMovieID, "get", "hpanangle") into field "MouseStillDownHandler Message" end if end on TestNodeLeaveHandler pToNode global gPanoMovieID if gPanoMovieID <> EMPTY then put "Leaving node ID: " & pToNode into field "NodeLeaveHandler Message" end if end factory CallBackTracer method mnew method mEvalExpr pExpr method mSendHCMessage pMessage method mSendCardMessage pMessage do(pMessage) method mGetFieldByName pCard, pName method mGetFieldByNum pCard, pNum method mGetFieldByID pCard, pID method mSetFieldByName pCard, pName, pValue method mSetFieldByNum pCard, pNum, pValue method mSetFieldByID pCard, pID, pValue